Associating external devices to vehicles and usage of said association

ABSTRACT

Methods, apparatuses and products for associating external devices to vehicles and usage of said association. One method obtains information from one or more mobile devices that are connected to the external device. The information is used to determine that the external device is associated with a vehicle, whereby another mobile device is enabled to determine that it is being located on the vehicle based on the mobile device being connected to the external device. Another method obtains an indication that a mobile device is connected to an external device. A database is accessed to retrieve an associated of the external device with a vehicle, whereby it is deduced that the mobile device is located in or on the vehicle. In response to the deduction, a predetermined action may be performed.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.14/907,775 filed Jan. 26, 2016, which is a 371 of PCT/IL2014/050674filed Jul. 24, 2014, which claims the benefit of U.S. ProvisionalApplication No. 61/858,914 filed Jul. 26, 2013, entitled “Automaticdetection of being in a mean of transportation and automatic detectionof accessories in a vehicle using mobile device”, which is herebyincorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates to mobile devices, in general, and toautomatic detection of a mobile device being in a vehicle, inparticular.

BACKGROUND

Mobile devices may be able to connect to external devices. The externaldevice may provide additional or alternative input/output components tothe mobile device, enable the mobile device to utilize functionality notpreviously available, or the like. In some exemplary embodiments,connecting to the external device may provide the mobile device with anInternet connection, a broadband connection to a computerized network,or the like. As an example, the external device may be a Bluetoothheadset, a speakerphone, an external display, a charger, a GlobalPositioning System (GPS) receiver, Wi-Fi router, a Wi-Fi hot spot,Radio-frequency identification (RFID) device, Near Field Communication(NFC) device, or the like.

The connection may be a wireless connection, such as using wirelessprotocols (e.g. Bluetooth, Wi-Fi, RFID, NFC, or the like), or a wiredconnection using a cable, such as in case of a vehicle charger used toprovide power supply to charge the mobile device.

The mobile device may connect to different external devices, to similarexternal devices and to several external devices at once. Additionallyor alternatively, one external device may be connected to a singlemobile device at a time, or a plurality of mobile devicessimultaneously.

In some exemplary embodiments, a mobile device may be configured toautomatically connect to an external device. As an example, in case aBluetooth device was paired to the mobile device, the mobile device mayautomatically connect to the Bluetooth device when detecting itspresence. As another example, a mobile device may automatically connectto a familiar Wi-Fi network, when the Wi-Fi network is available to themobile device, such as when the mobile device is within sufficient rangeof a Wi-Fi router or hot spot that provides access to the Wi-Fi network.

BRIEF SUMMARY

One exemplary embodiment of the disclosed subject matter is a methodcomprising: obtaining information from a plurality of mobile devices,wherein the information is gathered by sensors of the plurality ofmobile devices, while the plurality of the mobile devices are connectedto an external device; and determining, based on the information, thatthe external device is associated with a vehicle, wherein saiddetermining is performed by a processor; whereby enabling a mobiledevice to determine that the mobile device is located on the vehicle,based on the mobile device being connected to the external device.

Another exemplary embodiment of the disclosed subject matter is acomputerized apparatus having a processor, the processor being adaptedto perform the steps of: obtaining information from a plurality ofmobile devices, wherein the information is gathered by sensors of theplurality of mobile devices, while the plurality of the mobile devicesare connected to an external device; and determining, based on theinformation, that the external device is associated with a vehicle;whereby enabling a mobile device to determine that the mobile device islocated on the vehicle, based on the mobile device being connected tothe external device.

Yet another exemplary embodiment of the disclosed subject matter is acomputer program product comprising a computer readable storage mediumretaining program instructions, which program instructions when read bya processor, cause the processor to perform a method comprising:obtaining information from a plurality of mobile devices, wherein theinformation is gathered by sensors of the plurality of mobile devices,while the plurality of the mobile devices are connected to an externaldevice; and determining, based on the information, that the externaldevice is associated with a vehicle; whereby enabling a mobile device todetermine that the mobile device is located on the vehicle, based on themobile device being connected to the external device.

Yet another exemplary embodiment of the disclosed subject matter is amethod comprising: obtaining an indication that a mobile device isconnected to an external device; accessing a database to retrieve anassociation of the external device with a vehicle, wherein the databaseretains associations between external devices and vehicles, wherebydeducing that the mobile device is located in or on the vehicle based onthe indication; and in response to deducing that the mobile device islocated in or on the vehicle, performing a predetermined action, whereinsaid performing the predetermined action is performed by a processor.

Yet another exemplary embodiment of the disclosed subject matter is acomputerized apparatus having a processor, the processor being adaptedto perform the steps of: obtaining an indication that a mobile device isconnected to an external device; accessing a database to retrieve anassociation of the external device with a vehicle, wherein the databaseretains associations between external devices and vehicles, wherebydeducing that the mobile device is located in or on the vehicle based onthe indication; and in response to deducing that the mobile device islocated in or on the vehicle, performing a predetermined action.

Yet another exemplary embodiment of the disclosed subject matter is acomputer program product comprising a computer readable storage mediumretaining program instructions, which program instructions when read bya processor, cause the processor to perform a method comprising:obtaining an indication that a mobile device is connected to an externaldevice; accessing a database to retrieve an association of the externaldevice with a vehicle, wherein the database retains associations betweenexternal devices and vehicles, whereby deducing that the mobile deviceis located in or on the vehicle based on the indication; and in responseto deducing that the mobile device is located in or on the vehicle,performing a predetermined action.

THE BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present disclosed subject matter will be understood and appreciatedmore fully from the following detailed description taken in conjunctionwith the drawings in which corresponding or like numerals or charactersindicate corresponding or like components. Unless indicated otherwise,the drawings provide exemplary embodiments or aspects of the disclosureand do not limit the scope of the disclosure. In the drawings:

FIG. 1 shows an illustration of a computerized environment, inaccordance with some exemplary embodiments of the disclosed subjectmatter;

FIG. 2 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 3 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 4 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 5 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 6A shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 6B shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 7 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter;

FIG. 8 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter; and

FIG. 9 shows a flowchart diagram of a method, in accordance with someexemplary embodiments of the disclosed subject matter.

DETAILED DESCRIPTION

One technical problem dealt with by the disclosed subject matter is toenable a determination that a mobile device is located on a vehicle. Insome cases, the vehicle may be a public vehicle.

The mobile device may be a handheld computing device, a mobile phone, asmartphone, a cellular phone, a laptop computer, a tablet computer, aPersonal Digital Assistant (PDA), smartwatch, wearable accessories, orthe like.

In the present disclosure, the term “vehicle” may relate to any means oftransportation including but not limited to a car, a bike, a train, asubway, a bus, a ship, an airplane, or the like.

In the present disclosure, the term “public vehicle” may relate to anyvehicle that can be used by many different people at the same time or atdifferent times, such as for example, a bus, a train, a subway, anairplane, or the like.

Another technical problem dealt with by the disclosed subject matter isto identify that a user of a mobile device is on or in a vehicle.

Yet another technical problem dealt with by the disclosed subject matteris to filter information gathered from a plurality of mobile devices.Filtering the information may be based on the plurality of mobiledevices being associated with one or more vehicles. In some exemplaryembodiments, filtering the information may be performed to removeinformation gathered from mobile devices located on vehicles (or typesthereof), public vehicles, or the like. Additionally or alternatively,the information may be filtered to allow processing only of informationgathered from mobile devices that are located on vehicles, publicvehicles, specific vehicles, or the like.

One technical solution may be to identify that the mobile device isconnected to an external device and to determine that the mobile deviceis located in or on a vehicle based on a predetermined associationbetween the external device and the vehicle. In some cases, theassociation between the external device and the vehicle may bedetermined automatically based on information from a plurality of mobiledevices, which is gathered while the plurality of mobile devices areconnected to the external device.

In the form of a non-limiting example, the external device may be aBluetooth headset, a speakerphone, an external display, a charger, a GPSReceiver, an RFID device, an NFC device, a Wi-Fi router, a Wi-Fi hotspot, car computer, vehicle telematics system, or the like.

In some exemplary embodiments, after an association between an externaldevice and a vehicle is determined, a database is updated to retain theassociation for future usages. The database may be used when a mobiledevice is detected as connected to an external device to infer that themobile device is located in or on the same vehicle to which the externaldevice is associated. In some exemplary embodiments, the mobile devicemay be configured to access the database to determine that the mobiledevice is located in or on the vehicle to which the external device isassociated. Additionally or alternatively, a server may access thedatabase to determine that the mobile device is located in or on thevehicle to which the external device is associated.

Another technical solution may be to determine that the external deviceis associated with a vehicle based on physical data that is gathered bymobile devices while the mobile devices are connected to the externaldevice. In some cases, each mobile device may gather physical data overtime while being connected to the external device. A correlation betweenthe physical data obtained from different mobile devices while beingconnected to the same external device at overlapping times may beindicative that the external device is located in or on a vehicle. Forexample, the information may indicate a similar change in position,orientation, mobility status, acceleration, or the like, therebyindicating that the mobile devices are located in or on a same vehicle.In some exemplary embodiments, a correlation may be indicative that theexternal device is not stationary, such as indication that the locationchanges in over a predetermined distance (e.g., 500 meters, 1 km, or thelike), an indication of a speed above a predetermined threshold (e.g.,over 5 km/h, 20 km/h, or the like), or the like. In addition, in casethe information is gathered from a number of mobile devices greater thana predetermined threshold, it may be determined that the vehicle is apublic vehicle. For example, the threshold may be two mobile devices,three mobile devices, ten mobile devices, or the like. It will be notedthat in a public vehicle several users holding several mobile devicesmay ride together, while such a situation is less likely in a non-publicvehicle, such as a bike or a private car.

Yet another technical solution may be to obtain a positional data of onemobile device in various points in time. Determining that the externaldevice is associated with a public vehicle may be based on identifying acorrelation over time between the positional data of the one mobiledevice and a path of the public vehicle. The path may be obtained from adatabase. The path may be a predetermined and substantially consistentroute of the public vehicle or portion thereof such as a route definedby a railroad, a defined route of a bus, a set of checkpoints along theroute, such as bus stations, streets, or the like.

Yet another technical solution may be to obtain a speed of one mobiledevice in various points in time. Determining that the external deviceis associated with the public vehicle may be based on determining thatthe speed of the one mobile device is greater than a predefined speedthreshold. The predefined speed threshold may be associated with a speedof the public vehicle, such as a speed of over 200 km/h which isexpected from certain trains but not private vehicles.

Yet another technical solution may be to obtain a positional data of onemobile device in various points in time. Determining that the externaldevice is associated with the public vehicle may be based on determininga movement pattern based on the positional data in the various points intime. The movement pattern may be associated with the mobile devicebeing located in or on the public vehicle.

Yet another technical solution may be to obtain information that may beindicative of a position and speed of one mobile device in variouspoints in time, and obtaining traffic information pertaining to theposition of the one mobile device in the various points in time.Determining that the external device is associated with the publicvehicle may be based on identifying a contradiction between the trafficinformation and the speed of the one mobile device.

Yet another technical solution may be to obtain user interactioninformation. The user interaction information may indicate interactionsby a user with the mobile device. Determining that the external deviceis associated with the public vehicle may be based on identifying thatthe user interaction information is indicative of the user being on orin the vehicle. The user interaction may be, for example, a pattern ofinteraction (e.g., gaps between user interactions or lack thereof), atype of user input method used (e.g., voice commands, using keyboard,using pointing device, etc.), type of activities (e.g., usage ofbrowser, usage of music player, usage of GPS navigation application,turning on or off an airplane mode, or the like). In some exemplaryembodiments, machine learning techniques may be used to identify thatthe user interaction is indicative of the user being on or in thevehicle. As an example, a trained classifier may be used to predictwhether or not the user interaction is indicative of the user being onor in the vehicle.

In some cases, the trained data may include user interaction informationthat is obtained from one or more mobile devices while their associationto a vehicle (or lack thereof) is known or determined. The userinteraction information may be information obtained from a plurality ofmobile devices regardless of the users, personalized informationobtained from mobile devices operated by similar users to the user, orinformation obtained from mobile devices operated by the user herself.

Yet another technical solution may be to obtain mobility information ofthe one or more mobile devices at various points in time. The mobilityinformation may indicate a mobility status, such as a “driving” status,a “non-driving” status, a “walking” status, or the like. The mobilityinformation may be determined based on sensors of the mobile device,such as but not limited to accelerometer readings. Based on the mobilitystatus, a portion of the driving time out of the total connection timeto the external device may be calculated. The calculated portion may beused to determining that the external device is associated with avehicle. As an example, in case the portion is greater than a predefinedthreshold, such as 50%, 60%, 70%, or the like, the external device maybe deduced to be located on a vehicle.

One technical effect of the disclosed subject matter may be to crowdsource mobile devices to determine, without prior knowledge,associations between external devices and vehicles. In some cases, bycrowd sourcing a continuously monitoring the received information,changes, such as deploying new external devices, moving an externaldevice from one vehicle to another or to a non-vehicle and vise versa,or the like, may be detected automatically.

Another technical effect may be enabling filtering of crowd sourcedinformation based on location of the mobile device in vehicles or publicvehicles. As an example, traffic information may be deduced based oncrowd sourced information. However, information obtained from certainvehicles, such as bus driving in a bus lane, bikes, trains, or the like,may not be useful for such computations and may even becounterproductive as it may indicate there are no traffic jams inlocations where there are traffic jams. The disclosed subject matter maybe used to filter such information even if it is provided by certainmobile devices. As another example, crowd sourced information from allusers which is filtered to relate solely to users riding publicvehicles, may be used to track the public vehicles over time withoutdeploying devices on the public vehicles and without cooperation of theservice provider of the public vehicle.

In some exemplary embodiments, the crowd sourced information may beobtained from all types of mobile devices and at all times, and may befiltered according to a desired filtering condition and according to acurrent state of the mobile device at each point in time.

Yet another technical effect may be enabling functionality manipulation,when the mobile device is located on or in a vehicle or a publicvehicle. The manipulation may be a modification to a User Interface (UI)of the mobile device, based on the mobile device being located on or inthe vehicle. As another example, the manipulation may be an activationof predetermined functionalities, such as logging the user on to apredetermined service (e.g., a social network service).

In some exemplary embodiments, an estimated destination of a user of themobile device may be determined. As an example, a specific line numberof the public vehicle may be determined and based thereof potentialdestinations may be determined. In some cases, user history and historyof other users may also be used to predict the destination. Accordingly,content items that are associated with the estimated destination may beserved to the mobile device to be provided to the user. The contentitems may be, for example, destination-based advertisements, informationabout the destination, alerts or notifications related to thedestination, or the like. Additionally or alternatively, an estimatedarrival time of the vehicle to the estimated destination may beindicated. In this case, a notification of being late may be issued, oran alarm may be activated close to the estimated arrival time, or thelike.

Referring now to FIG. 1 showing an illustration of a computerizedenvironment, in accordance with some exemplary embodiments of thedisclosed subject matter.

Computerized Environment 100 comprises a Server 130 connected to aNetwork 105, such as a Local Area Network (LAN), Wide Area Network(WAN), intranet, the Internet, or the like. Server 130 may be aprocessing device. Server 130 may be configured to obtain and processinformation from external sources, such as but not limited to mobiledevices (e.g., Mobile Device 110).

Mobile Device 110, such as a mobile phone, a PDA, a tablet, or the like,may send information to Server 130 via Network 105. In some cases,Mobile Devices 110 may be a handheld device or otherwise carried by auser. In some exemplary embodiments, Mobile Device 110 may gatherinformation by sensors. A sensor of Mobile Device 110 may be a devicemeasuring any physical property, such as for example, an accelerometer,a gyroscope, a compass, a barometer, a photosensor, sound sensor (e.g.,microphone), or the like.

In some exemplary embodiments, the information may comprise physicaldata measured by Mobile Device 110 using sensors. The physical data maycomprise, for example, a location of Mobile Device 110 at various pointsin time, a speed of Mobile Device 110 at various points in time, adirection of Mobile Device 110 at various points in time, anacceleration of Mobile Device 110 at various points in time, an altitudeof Mobile Device 110 at various points in time, a light measurementmeasured by photosensors of Mobile Device 110 at various points in time;and a sound measurement measured by microphones of Mobile Device 110 atvarious points in time, or the like.

In some exemplary embodiments, the information may comprise positionalinformation of Mobile Device 110, such as a location of Mobile Device110. Mobile Device 110 may detect the location by using a positioningdevice that is capable of ascertaining its position, such as, forexample, a GPS receiver, a Wi-Fi based triangulator, a cell-basedtriangulator, or the like. In some exemplary embodiments, Mobile Device110 may obtain sensor readings useful for determining a mobility statusof Mobile Device 110. “Mobility status” may be a status indicating amode of movement of Mobile Device 110 or user holding Mobile Device 110.The mobility status may indicate a “driving” status (e.g., Mobile Device110 is located within a vehicle that is being driven), a “walking”status (e.g., Mobile Device 110 is held by a person that is walking), a“non-driving” status (e.g., Mobile Device 110 is not located within avehicle being driven), or the like. In some cases, the mobility statusmay be identified by readings of an accelerometer of Mobile Device 110and identification of an acceleration curve that is indicative of themobility status. However, the disclosed subject matter is not limited tosuch an embodiment, and other sensors may be utilized, such as, forexample, a positioning device, in order to determine the mobility statusof Mobile Device 110.

In some exemplary embodiments, Mobile Device 110 may monitor userinteraction by the person using Mobile Device 110, also referred to as auser (not shown). User interaction may include any form of interactionof the user with Mobile Device 110 including but not limited to usage ofspecific applications, I/O components used to interact with MobileDevice 110, functionalities that are operated by the user, a rate ofuser interaction and timing thereof, a selected mode of operation ofMobile Device 110 (e.g., “flight” mode), or the like.

In some exemplary embodiments, Mobile Device 110 may be connected to anExternal Device 120. External Device 120 may be a power charger, aBluetooth device, a Bluetooth headset, a speakerphone, an externaldisplay, a GPS receiver, an RFID device, an NFC Device, a Wi-Fi routeror hot spot, or the like.

In some exemplary embodiments, the connection between Mobile Device 110and External Device 120 may be a wireless connection, such as usingwireless protocols (e.g. Bluetooth, Wi-Fi, RFID, NFC, or the like), or awired connection using a cable, such as in case of a vehicle chargerused to provide power supply to charge the Mobile Device 110. In someexemplary embodiments, Mobile Device 110 may be connected to severalexternal devices at the same time. In some exemplary embodiments,External Device 120 may be connected to more than a single mobile deviceat the same time.

In some exemplary embodiments, Server 130 is configured to determine,based on the information provided by Mobile Device 110, that ExternalDevice 120 is associated with a vehicle. In some exemplary embodiments,the determination may identify that the vehicle is a public vehicle.Additionally or alternatively, the determination may identify the typeof the vehicle (e.g., a bus, a bike, a train, a car, or the like), theidentity of the vehicle such as a line number or train number.

In some exemplary embodiments, Server 130 may be configured to store theassociation between External Device 120 and the vehicle in a Database140. Database 140 may be utilized by devices to determine that a mobiledevice, which is connected to External Device 120, is located on thevehicle associated with External Device 120. In some exemplaryembodiments, the determination may be by a mobile device, such as MobileDevice 110, which may access Database 140. Additionally oralternatively, the determination may be by Server 130, by anotherserver, or by another computing device.

It will be noted that Computerized Environment 100 is illustrated withthree mobile devices and a single external device. However, thedisclosed subject matter is not limited to such an arrangement and anynumber of mobile devices and external devices may be part of acomputerized environment according to the disclosed subject matter.

Referring now to FIG. 2 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method depicted in FIG. 2 may be performed by a server, suchas 130 of FIG. 1.

In Step 200, a first mobile device may connect to an external device,such as 120 of FIG. 1. Similarly, in Step 202, a second mobile devicemay connect to the external device. The connections may occur atdifferent times. In some cases, the mobile devices may be connected tothe external device at overlapping times, simultaneously, or the like.

In Step 210, the first mobile device may gather a first physical datum.The first physical datum may be gathered by a sensor of the first mobiledevice. In Step 212, the second mobile device may gather a secondphysical datum. The physical data may be gathered by the mobile devicesover time, such as periodically, every ten milliseconds, every onesecond, every one minute, every fifteen minutes, or the like. Forexample, the mobile devices may use a positioning device to determine alocation of the mobile devices over time. Additionally or alternatively,the mobile devices may use an accelerometer to determine an accelerationmeasurement of the mobile devices over time.

In Steps 220 and 222, the physical data may be received, such as by aserver. The server may receive the physical data from the mobiledevices, such as via Network 105 of FIG. 1. In some exemplaryembodiments, the mobile devices may transmit the physical data to theserver periodically, immediately after obtaining each physical datum, orthe like.

In some exemplary embodiments, a physical datum may comprise informationrelating to at least one physical measured property at a point in time.In some exemplary embodiments, the physical datum may comprise at leastone of: a location of a mobile device at a point in time, a speed of amobile device at a point in time, a direction of a mobile device at apoint in time, an acceleration of a mobile device at a point in time, analtitude of a mobile device at a point in time, a light measurementmeasured by a photodetector at a point in time, a sound measurementmeasured by a microphone at a point in time, or the like.

In step 230, a correlation over time between the physical data of thefirst mobile device and the physical data of the second mobile devicemay be determined. The correlation may relate to overlapping times inwhich the mobile devices are connected to the external device and obtainphysical data.

In some exemplary embodiments, in case of physical data indicatesmeasured speeds at various points in time, the correlation may bedetermined if the physical data sets have substantially the same speedover time. It will be noted that in some cases, the measurements may notbe identical and still be considered as having a correlation, such as incase of using different sensors with different sensitivities orpotential offsets, taking measurements at different times (e.g., within10 seconds of each other), failing to obtain correct measurements by thesensors temporarily, or the like.

As another example, correlation between locations of the mobile devicesat different times may indicate that the mobile devices are movingsubstantially together over time, such as would be the case if themobile devices are carried by users riding the same vehicle.

As yet another example, a correlation between deltas of the measurementsmay be determined. Such a correlation may allow determining that theusers are located on the same vehicle even if they are not near oneanother. Additionally or alternatively, the correlation may be acorrelation of trends of the physical data of the different mobiledevices.

Additionally or alternatively, the correlation may be indicative thatthe location of the external device is not stationary, such as themobile devices are located in different locations when connected to theexternal device, a speed and acceleration measurements associated withbeing driven, mobility status of at least some of the mobile devices areindicative of being driven while connected to the external device atleast a portion of the time, or the like.

In some exemplary embodiments, the correlation may be a correlationbetween tuples of physical measurements. Each mobile device may provide,for each point in time, a tuple of measurements of physical properties.Each element in the tuple may indicate a measurement of a differentphysical property or by a different sensor. The determined correlationmay be correlation between the tuples over time. For example, the tuplemay include three measurements: a first element measuring altitude, asecond element measuring light, and a third measurement measuringacceleration. A correlation between the two or more sets of tuples,obtained from two or more mobile devices, may be determined. It will benoted that light measurements may be useful in subways and trains whichare intermittently exposed to daylight. It will be further noted, thataltitude may be useful in terrains which have slopes, hills, planes andsimilar varying terrain types.

In Step 240, the external device may be determined to be associated witha vehicle.

Identifying that mobile devices are connected together to a sameexternal device record similar physical measurements or changes thereof,may indicate that the users are located in a same vehicle. In case thephysical measurements are indicative of changing location, changingspeed, being in a “driving” status, or the like, they may indicate thatthe external device is located in a vehicle. Referring to the abovementioned example, a correlation between the speed of the first mobiledevice and the speed of the second mobile device may indicate that thefirst mobile device and the second mobile device are moving at the samepattern over time and thus are located in or on the same vehicle.

In some exemplary embodiments, in case the correlation is betweenphysical data recorded by a group of mobile devices that comprise morethan a minimal threshold of devices, it may be determined that theexternal device is associated with a public vehicle. As an example, theminimal threshold may be two mobile devices, three mobile devices, tenmobile devices, twenty mobile devices, a hundred mobile devices, or thelike. It will be noted that in some cases, different sets of mobiledevices may be simultaneously connected to the external device atdifferent times thereby indicating that the external device is publiclyaccessible, such as a hot spot in a public vehicle, and not private suchas a hot spot in a non-public vehicle.

In Step 250, the association between the external device and the vehiclemay be stored in a database, such as 140 of FIG. 1. The database may beupdated to include a record containing at least two elements: anidentifier of the external device, such as Service set identification(SSID), a Media Access Control (MAC) address, Bluetooth address,Internet Protocol (IP) address, or the like, and the associated type ofvehicle (e.g., none/public/non-public). Additionally or alternatively,the record may contain an element identifying the specific vehicle, suchas a line number of a bus.

In some exemplary embodiments, the database may retain the obtainedphysical data to allow for future processing of the physical data, suchas re-evaluating the determination of Step 240 in the future in view ofadditional recorded information. In some cases, an external device maybe removed from a vehicle and may be deployed elsewhere. The same mayalso apply to external devices that are initially not deployed in avehicle and later on are so deployed. As an example, consider aBluetooth headset that is initially used by a user when walking anddriving, and is later on solely used when driving. In some cases, theinitial determination may be modified based on new information whilepotentially still addressing the information that led to the initialdetermination.

Referring now to FIG. 3 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 3 may be performed by a server, such as 130of FIG. 1.

In Step 300, a mobile device may connect to an external device, in asimilar manner to Step 200 of FIG. 2.

In Step 310, the mobile device may gather positional data in variouspoints in time. In some exemplary embodiments, the positional data maybe gathered by sensors of the mobile device, measuring a physicallocation of the mobile device, such as, for example, a GPS receiver,Wi-Fi receivers, or the like. In some exemplary embodiments, thepositional data may be an outcome of triangulation computations. In someexemplary embodiments, the positional data may include locations of themobile device in various points in time, such as depicted by a longitudeand latitude information. Additionally or alternatively, the positionaldata may include altitude, orientation, direction, or the like. Thepositional data may be gathered by the mobile device over time, such asperiodically, every ten milliseconds, every one second, every oneminute, every fifteen minutes, or the like. For example, the mobiledevice may use a positioning device to determine positions of the mobiledevice over time.

In Step 320, the positional data may be received from the mobile device,such as by a server. In some exemplary embodiments, the mobile devicemay transmit the positional data to the server periodically, immediatelyafter obtaining each positional datum, or the like.

In Step 330, a determination that the external device to which themobile device is connected is associated with a public vehicle may beperformed. In some exemplary embodiments, the determination may beperformed using Steps 332 and 334, using Steps 336 and 338, or in asimilar manner.

In Step 332, information about paths of public vehicles may be received.The information may include predetermined routes of public vehicles,such as for example, a route of a specific bus line, a defined route ofa train, an outline of a track or railroad, a set of stations of a lineof a bus, a time table of a public means of transportation, or the like.

The information about the paths of the public vehicles may be obtainedfrom a database. The database may or may not be provided by a thirdparty, such as but not limited to providers of public transportationservices.

In Step 334, a correlation over time between the positional data and apath of a public vehicle may be identified. In some exemplaryembodiments, the correlation may be identified as a compatibilitybetween the positional data and the information about the paths overtime, as an example compatibility between locations of the mobile devicein various points in time and a route of a bus. The compatibility inthis case may indicate that while the mobile device was connected to theexternal device, the mobile device was located on or in the bus. In someexemplary embodiments, the correlation may be a correspondence betweenthe positional data and a path that is designated for a specific line ofpublic transportation.

In some exemplary embodiments, based on the correlation with a path, anassociation to a specific type of public vehicle, such as a train, abus, or the like, may be determined. Additionally or alternatively, thedetermined association may be with a specific line, such as a specifictrain line, a specific bus line, or the like.

It will be noted that the correlation may not be exact. In some cases,only a portion of the positional data may match the path. For example, abus driver may drive the bus to additional locations while beingoff-duty. As another example, a detour may be taken by a train or a busin view of temporary conditions. In some cases, if the positional datacorrelates o the path in over a predetermined portion of the data, suchas over 50%, over 80%, over 90%, or the like, the association with thepath, and accordingly with the specific public vehicle, may bedetermined.

In Step 336, a movement pattern may be determined based on thepositional data. The movement pattern may be determined based on thepositional data of the mobile device in various points in time. In someexemplary embodiments, sensors of the mobile device may be utilized todetect a movement pattern of the mobile device over time. For example,the movement pattern may be determined based on information gathered byGPS sensors, location indication sensors of the mobile device, or thelike. In some exemplary embodiments, the movement pattern may be apattern of mobility statuses over time. The movement pattern may be apattern of gaps between driving and stopping (e.g., driving two minutes,stopping for one minute, driving for three minutes, stopping for oneminute, etc.), pattern of speeds over time (e.g., between 10-20 km/h forten minutes, between 0-5 km/h for one minute, between 10-20 km/h for oneminute, between 20-30 km/h for two minutes, etc.), or the like.

In Step 338, the server may conclude that the movement patterncorresponds to a public vehicle. Different types of vehicles may havedifferent behaviors and different movement patterns. For example, amovement pattern of repetition of driving then stopping for few seconds,may correspond to a public vehicle. If the stopping parts in themovement pattern are close to each other, for example less than fewhundreds of meters, the movement pattern may indicate being on a bus. Ifthe stopping parts in the movement pattern are far from each other, forexample more than five, ten or twenty kilometers, the movement patternmay indicate being on a train. If the duration between stops isrelatively short, it may be determined that the movement pattern isconsistent with a vehicle in traffic jams.

In Step 340, the association between the external device and the publicvehicle may be stored in a database, in a similar manner to Step 240 ofFIG. 2.

Referring now to FIG. 4 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 4 may be performed by a server, such as 130of FIG. 1.

In Step 400, a mobile device may connect to an external device, in asimilar manner to Step 200 of FIG. 2.

In Step 410, the mobile device may gather information about a speed ofthe mobile device in various points in time. The information may begathered by the mobile device over time, such as periodically, every tenmilliseconds, every one second, every one minute, every fifteen minutes,or the like.

In Step 420, the information may be received from the mobile device, ina similar manner to Step 320 of FIG. 3.

In Step 430, a maximal speed of the mobile device may be determined. Themaximal speed of the mobile device may be the maximal measured speed ofthe mobile device according to the received information.

In Step 440, the maximal speed may be compared with a threshold todetermine that the maximal speed is greater than the threshold.Additionally or alternatively, different ranges may be used, eachindicative of a potentially different type of public vehicle. Differentthresholds may be indicative of different kinds of public vehicles. Forexample, a threshold of 160 km/hour may be indicative of a train. Arange of 40 km/h to 80 km/h may be indicate a bus.

In Step 450, the mobile device may be deduced to be located on or in apublic vehicle, based on the determination of Step 440. In someexemplary embodiments, a type of public vehicle may be determined basedon the above-mentioned information or based on additional information inaccordance with the disclosed subject matter.

In Step 460, the association between the external device and the publicvehicle may be stored in a database, in a similar manner to Step 240 ofFIG. 2.

Referring now to FIG. 5 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 5 may be performed by a server, such as 130of FIG. 1.

In Step 500, a mobile device may connect to an external device, in asimilar manner to Step 200 of FIG. 2.

In Step 510, the mobile device may gather information about a speed andposition of the mobile device in various points in time. The informationmay be gathered by sensors of the mobile device, such as in Step 410 ofFIG. 4 and Step 310 of FIG. 3.

In Step 520, the information may be received from the mobile device, ina similar manner to Step 320 of FIG. 3.

In Step 530, traffic information pertaining to the position of themobile device in various points in time may be obtained. The informationmay be obtained from a third party server collecting trafficinformation, from a database retaining traffic information, or the like.Traffic information may indicate traffic jams, average driving speeds inroads, or the like.

In Step 540, a contradiction between the traffic information and thespeed of the mobile device may be identified. In some exemplaryembodiments, the contradiction may be, for example, speed higher thanaverage speed by a predetermined threshold (e.g., 20%, 20 km/h, or thelike), high speed in a traffic jam, or the like. Such contradictions maybe indicative, for example, that the vehicle uses dedicated road orrailroad which may not be affected by traffic as private vehicles. Insome exemplary embodiments, not being affected from traffic may indicatebeing on a train or being in a bus that is using a bus lane.Additionally or alternatively, a bike may also not be affected bytraffic.

In Step 550, it may be deduced that the mobile device is located on orin a public vehicle.

In Step 560, the association between the external device and the publicvehicle may be stored in a database, such as in Step 240 of FIG. 2.

Referring now to FIG. 6A showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 6A may be performed by a server, such as 130of FIG. 1. Additionally or alternatively, the method of FIG. 6A may beperformed by a mobile device, such as 110 of FIG. 1.

In Step 600, a mobile device may connect to an external device, in asimilar manner to Step 200 of FIG. 2.

In Step 610, the interaction of the user with the mobile device may bemonitored. The user interaction may be monitored for a duration of time,such as 10 minutes, 20 minutes, an hour, or the like. The monitored userinteraction may include the method of operation which the user selectsfor the mobile device, applications or features of the mobile devicethat the user enables, bandwidth utilization, type of I/O devices usedto interact with the mobile device, a rate of interaction of the userwith the mobile device, or the like. The user interaction informationmay be utilized by the mobile device itself or may be transmitted toanother component, such as a server, to be processed and used by theother component.

In Step 620, it may be determined that the user interaction informationis indicative of a user being on or in a vehicle. Additionally oralternatively, user interaction information may be determined to beindicative of the user being in or on a public vehicle. In someexemplary embodiments, the determination may be performed using amachine learning tool, also referred to as a classifier. The classifiermay be configured to predict, based on user interaction information,whether the user is in a vehicle, in a public vehicle, not in a vehicle,or the like. In some exemplary embodiments, the classifier may predict aspecific vehicle being used, such as a bus line, based on the userinteraction. As an example, when riding on a train to Paris, the usermay interact with the mobile device and obtain information relevant toParis. As a result, it may be determined that the user rides a train toParis. In some exemplary embodiments, the classifier may be trainedusing training data, as is depicted in FIG. 6B.

In Step 630, based on the determination of Step 620 and in view of theconnection in Step 610, it may be determined that the external device isassociated with a vehicle, a public vehicle, or the like.

In Step 640, the association between the external device and the vehiclemay be stored in a database, in a similar manner to Step 240 of FIG. 2.

Referring now to FIG. 6B showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter.

User interaction information is obtained, such as by having the mobiledevice monitor the user interaction (Step 680). In addition andseparately from the user interaction information, it may be determinedwhether or not the user is in a vehicle, a public vehicle, a specificvehicle or the like (Step 685). The determination may be denoted as alabel (L). As an example, the determination may be based on the mobiledevice being connected to an external device that is associated with avehicle. Additionally or alternatively, the determination may be basedon explicit user input indicating that the user is located in a vehicle,in a public vehicle, not in a vehicle, or the like. Pairs (F,L) may beused as a training datum for a classifier. The pair comprises one ormore features (F) and the label (L). The label may be the determinedlabel of Step 685. The features may be features that are extracted fromthe user interaction information. Additionally or alternatively, thefeatures may include demographic features used to characterize the user.The training data may be used to train the classifier (Step 690). Basedon the training data, the classifier may be able to predict a label L′,based on features F′. In some exemplary embodiments, training data maybe obtained and used only with connection to the mobile device.Additionally or alternatively, the training data from a plurality ofmobile devices may be collected and used to train the classifier, suchas a classifier in a server. In some exemplary embodiments, thedetermination of Step 620 of FIG. 6A may be based on a prediction by theclassifier. In Step 620, features may be extracted from the userinteraction information and potentially from additional sources such asindicative of demographic information of the user. The features may befed to the classifier which may predict a label based on the featuresand its training.

Referring now to FIG. 7 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 7 may be performed by a server, such as 130of FIG. 1.

In Step 700, a mobile device may connect to an external device, in asimilar manner to Step 200 of FIG. 2.

In Step 710, a mobility status of the mobile device may be determined.The mobility status may be determined periodically, every one second,every one minute, or the like. In some exemplary embodiments, themobility status may be determined based on readings from a sensor, suchas an accelerometer, over time. The curve defined by the readings may beindicative of the mobile device being held by a user that is walking,being mounted or placed in a vehicle that is being driven, or the like.In some exemplary embodiments, the mobility status may be either a“driving” mobility status or a “non-driving” mobility status. In someexemplary embodiments, in case the mobility status cannot be inferred ata particular time, the mobility status may be deemed “unknown”.

In Step 730, a total connection time of the mobile device may becalculated. In some exemplary embodiments, the calculation may be basedon information provided by the mobile device. As an example, the totalconnection time to a Wi-Fi hot spot may be 120 minutes, which may be acontinuous connection or intermittent connections to the Wi-Fi hot spot.

In Step 720, a total driving time of the mobile device may becalculated. The total driving time may be computed based on the mobilitystatuses of Step 710 at each point in time. Referring to the exampleabove, it may be determined that in 80 minutes, the mobile device was ina “driving” mobility status while connected to the Wi-Fi hot spot. Thereminder of 40 minutes may be points in time in which the mobilitystatus is different than “driving” mobility status, such as but notlimited to “non-driving” mobility status, “unknown” mobility status, orthe like.

In some exemplary embodiments, the total driving time and the totalconnection time may be computed based on information obtained from aplurality of mobile devices. By obtaining the information from aplurality of mobile devices, the information may be used to deduce morestatistically sound conclusions.

In Step 740, a ratio between the total driving time and the totalconnection time may be calculated. Referring again to the example above,the calculated ratio may be 80/120=⅔.

In Step 750, an association between the external device and a vehiclemay be determined. The association may be determined based on the ratio.In some exemplary embodiments, in case the ratio is above apredetermined threshold, such as 50%, 60%, 70%, or the like, theassociation may be determined. In some exemplary embodiments, in case itratio is over 50% it may be indicative that most of the time theexternal device is inferred as having a “driving” mobility status, andtherefore it may be determined that the external device is associatedwith a vehicle. It will be noted, however, that the threshold may belower than 50%, such as 30%, as it may still be indicative of asubstantial amount of time in which the external device was driven. Insome exemplary embodiments, the association may be determined only incase the total driving time is larger than a predetermined threshold,such as 60 minutes, 200 minutes, or the like.

In Step 760, the association between the external device and the vehiclemay be stored in a database, the association between the external deviceand the public vehicle may be stored in a database, such as in Step 240of FIG. 2.

Referring now to FIG. 8 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 8 may be performed by a server, such as 130of FIG. 1. Additionally or alternatively, the method of FIG. 8 may beperformed by a mobile device, such as 110 of FIG. 1.

In Step 800, it may be determined that the mobile device is connected toan external device. In some exemplary embodiments, the determination maybe performed by a mobile device. In some cases, the mobile device mayact upon the determination. Additionally or alternatively, the mobiledevice may notify another component, such as a server, that the mobiledevice is connected to the external device.

In Step 810, a database, such as 140 of FIG. 1, may be accessed toretrieve a data record indication an association between the externaldevice and a vehicle, which may or may not be a public vehicle. Theassociation may be a predetermined association that may be manuallyprovided. Additionally or alternatively, the association may beautomatically determined in accordance with the disclosed subjectmatter.

In Step 820, a predetermined action may be performed. The predeterminedaction may be based on the vehicle that is determined to be associatedwith the external device. In some exemplary embodiments, thepredetermined action may be an action that is configured to provideinformation relevant to the user based on the determination that theuser is riding the vehicle. Additionally or alternatively, thepredetermined action may be an action changing a functionality of themobile device or invoking a functionality of the mobile device that isassociated with the vehicle.

Examples of predetermined actions are provided in Steps 830, 848, 846,and 850.

In Step 830, a User Interface (UI) of the mobile device may be changed.As an example, the UI may be modified to a “bus” UI when the user isriding a bus. As another example, the UI of an application may bemodified to a public vehicle UI. The public vehicle UI may haveadditional buttons not available in the original UI, may have lessbuttons than in the original UI, may have different buttons, or thelike. In some exemplary embodiments, the new UI may be graphicallydesigned to indicate its association with the vehicle. For example, abus UI may be designed with a yellow color palette.

In Step 850, the mobile device may be logged on automatically to apredetermined social network platform. In some exemplary embodiments, adesignated social network platform may be deployed to allow passengersof public vehicles to communicate with one another. Once the mobiledevice of the user is detected as being on a public vehicle, the mobiledevice may be logged in. In some exemplary embodiments, the socialnetwork platform may group and connect users riding a same type ofpublic vehicle, a same public vehicle, or the like. The social networkmay be a local social network that is only accessible to mobile devicesbeing located in the vehicle.

In Step 840, an estimated destination may be determined. The estimateddestination may be determined based on the associated vehicle (e.g., ascheduled stop or destination of a public vehicle). In some exemplaryembodiments, additional information may be used to estimate thedestination, such as but not limited to user interaction information,positioning information, history of the user, or the like. In someexemplary embodiments, the estimation may be performed by a classifierthat receives features, including an associated vehicle, and predicts adestination based on the features. An actual destination of the user maybe determined in the future, and it may be used to determine whether ornot the prediction was correct. Accordingly, the classifier may beupdated to improve its operation in future predictions.

In Step 848, one or more content items may be served. The content itemsmay be served by a server to the mobile device and presented to theuser. Additionally or alternatively, the mobile device may serve thecontent items to the user. The content items may be associated with theestimated destination. A content item may be, for example, anadvertisement that is associated with the estimated destination, such asan advertisement to a shop in the estimated destination. It will benoted that such advertisement may be served prior to the user arrivingto the estimated destination and may be provided to the user at a timein which he has spare time and can consider the advertised service. Asanother example, the content item may be a news article associated withthe estimated destination. As yet another example, the content item maybe an information notification associated with the estimateddestination, such as an Estimated Arrival Time (ETA) of the vehicle tothe estimated destination, an estimated trip duration, a weatherforecast for the estimated destination, or the like. In some exemplaryembodiments, the content item may indicate delays, such as due totraffic jams, due to weather conditions, or due to other reasons, of thevehicle. For example, the content item may indicate that the train whichthe user is located on and which is planned to arrive to the estimateddestination at 09:20 AM is delayed and its ETA is 09:32 AM instead.

In Step 842, it may be estimated that the user of the mobile device issleeping. The estimation may be based on user interaction information(or lack thereof), readings of sensors of the mobile device, or thelike. For example, an accelerometer may be used to identify how themobile device is being held. Based on the accelerometer readings, it maybe estimated that the user is sleeping. In some exemplary embodiments,the estimation may be performed by a classifier. Additionally oralternatively, the user may explicitly indicate that he is going tosleep.

In Step 844, the vehicle is determined to be nearby the destination. Thedetermination may be that the vehicle is within a predetermined rangefrom the destination, such as 2 km. Additionally or alternatively, thevehicle may be determined to be nearby the destination if the ETA isbelow a threshold, such as 30 seconds, 2 minutes, or the like. Thethreshold may be determined automatically, set as a parameter of thesystem, manually set by the user, or the like.

In Step 846, a notification may be issued. The notification may beaccompanied by a cue that is intended to wake up the user, such as anaudible sound, moderate vibrations, or the like.

Referring now to FIG. 9 showing a flowchart diagram of a method, inaccordance with some exemplary embodiments of the disclosed subjectmatter. The method of FIG. 9 may be performed by a server, such as 130of FIG. 1.

In Step 900, the server may obtain information gathered from a pluralityof mobile devices. The information may be crowd sourced from the mobiledevices. In some exemplary embodiments, the mobile devices may executean application that is configured to transmit the information to theserver.

In Step 910, the server may determine that a subset of the mobiledevices was connected to external devices while the information wastransmitted. For example, mobile device A may have been connected toexternal device X when sending some of the information of Step 900,mobile device B may have been connected to external device X as well,mobile device C may have been connected to external device D and mobiledevice D may have not been connected to any external device.

In Step 920, the information concerning the connected external devicesmay be used to deduce associated vehicle to each mobile device. Adatabase, such as 140 of FIG. 1, may be accessed to retrieve theassociation of each external device to a vehicle. Based on theassociation, it may be determined for each mobile device if it waslocated on a vehicle while transmitting the information, which type ofvehicle, which vehicle, or the like.

In Step 930, the information of Step 900 may be filtered based on acriteria relating to the mobile devices being on vehicles. In somecases, information transmitted while devices are located on vehicles maybe filtered out (e.g., dropped), while in other cases, informationtransmitted while devices are located on vehicles may be filtered in(e.g., retained while dropping all other information). In some exemplaryembodiments, the filtering may be associated with public vehicles, withspecific type of vehicles, with specific vehicles, or the like.

Steps 940-950 exemplify one usage for the filtered information, whileSteps 945-955 exemplify another usage.

The filtered information may include only information gathered frommobile devices that are on non-public vehicles (940). The filteredinformation may be analyzed (950). As an example, traffic informationmay be calculated based on the filtered information (954). Suchfiltering criteria may assist in avoiding receiving and being affectedby contradicting information of vehicles that are not affected bytraffic in a same manner as a private vehicle (e.g., busses in buslanes, trains, or the like). As another example, parking occupancy maybe calculated (952). Parking occupancy may be computed based on crowdsourced information. However, information of public vehicles may bedesired to be filtered out. For example, a bus stopping at a bus stopmay be accidently treating as a parking instance. By filtering out suchinformation, such false positive parking instances may be avoided.

The filtered information may include only information gathered frommobile devices that are on public vehicles (945). The filteredinformation may be analyzed (955) for some desired purpose. As anexample, locations of public vehicles may be monitored in real timebased on crowd sourced data (957). The locations of the public vehiclesmay be determined without a need to a priori deploy designatedpositioning devices for each public vehicle and without the consent orassistance of the service provider of the public vehicle.

In some exemplary embodiments, by determining automatically a vehicle(or type thereof) in which the user is located, other properties of theuser may be estimated. In some exemplary embodiments, age, gender,ethnicity, or other socio-economical properties of the user may bededuced. Additionally or alternatively, the properties of the user maybe determined from many factures such as analyzing apps installed intheir devices, analyzing the apps in use, analyzing to movement of theuser (e.g. running, walking), identifying places the user goes to—suchas school, university etc. In addition analysis of speech/voice/pitch ofa person, the way and speed he activates the device may help todetermine these properties. In some exemplary embodiments, training dataset may be obtained based on users whose properties are unknown orinferred. For each such user, when the user is determined to be in avehicle (or type thereof), a training data record may be generated. Thetraining data may be provided to a classifier or other machine learningtool that is adapted to predict the properties for other users based onthe vehicle in which they are located. In some exemplary embodiments,located in vehicles over time (e.g., 10 minutes in a subway, twentyminutes in a car, 15 minutes in a subway) may be used as a pattern ofvehicle usage, In some exemplary embodiments, the pattern of vehicleusage may be usage over a timeframe, such as a week, a month, a year.The pattern of vehicle usage may be used to predict one or moreproperties regarding the user with or without additional informationavailable.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method comprising: obtaining information from aplurality of mobile devices, wherein the information is gathered bysensors of the plurality of mobile devices, while the plurality ofmobile devices are connected to an external device; and automaticallydetermining, based on the information, that the external device isuniquely and persistently associated with a vehicle, wherein saidautomatically determining is performed by a processor, wherein saidautomatically determining is performed without prior knowledge about theexternal device being related to the vehicle; whereby enabling a mobiledevice to automatically determine that the mobile device is located onthe vehicle, based on the mobile device being connected to the externaldevice and based on the association between the external device and thevehicle.
 2. The method of claim 1 further comprises: storing theassociation between the external device and the vehicle in a database,wherein the database is accessible to the mobile device; and wherein themobile device is configured to access the database to determine that themobile device is located on the vehicle, based on the mobile devicebeing connected to the external device.
 3. The method of claim 1,wherein the information comprises a first physical datum gathered by afirst mobile device while the first mobile device is connected to theexternal device and a second physical datum gathered by a second mobiledevice while the second mobile device is connected to the externaldevice; wherein said determining comprises identifying a correlationover time between the first physical datum and the second physicaldatum.
 4. The method of claim 3, wherein, for each point in time, thefirst and second physical datum comprise at least one of: a location ofa mobile device at a point in time; a speed of a mobile device at apoint in time; a direction of a mobile device at a point in time; anacceleration of a mobile device at a point in time; an altitude of amobile device at a point in time; a light measurement measured by amobile device at a point in time; and a sound measurement measured by amobile device at a point in time.
 5. The method of claim 1, wherein theinformation comprises a positional data of one mobile device of theplurality of mobile devices in various points in time; wherein saiddetermining comprises identifying a correlation over time between thepositional data of the one mobile device and a path of the vehicle,wherein the path is obtained from a database.
 6. The method of claim 1,wherein the information comprises a speed of one mobile device of theplurality of mobile devices in at least one point in time; wherein saiddetermining comprises determining that the speed of the one mobiledevice is greater than a predefined speed threshold; wherein thepredefined speed threshold is associated with a speed of the vehicle. 7.The method of claim 1, wherein the information comprises positional dataof one mobile device of the plurality of mobile devices in variouspoints in time; wherein said determining comprises determining amovement pattern on the positional data in the various points in time;wherein the movement pattern is associated with the mobile device beinglocated in or on the vehicle.
 8. The method of claim 1, wherein theinformation is indicative of a position and speed of one mobile deviceof the plurality of mobile devices in various points in time; whereinsaid method further comprises: obtaining traffic information pertainingto the position of the one mobile device in the various points in time;wherein said determining comprises identifying a contradiction betweenthe traffic information and the speed of the one mobile device.
 9. Themethod of claim 1, wherein the information comprises user interactioninformation indicating interactions by a user of one mobile device withthe one mobile device; wherein said determining comprises identifyingthat the user interaction information is indicative of the user being onor in the vehicle.
 10. The method of claim 9, wherein said identifyingthat the user interaction is indicative of the user being on or in thevehicle comprises utilizing a classifier, wherein the classifier istrained by training data.
 11. A computerized apparatus having aprocessor, the processor configured to perform the steps of: obtaininginformation from a plurality of mobile devices, wherein the informationis gathered by sensors of the plurality of mobile devices, while theplurality of the mobile devices are connected to an external device; andautomatically determining, based on the information, that the externaldevice is uniquely and persistently associated with a vehicle, whereinsaid automatically determining is performed without prior knowledgeabout the external device being related to the vehicle; whereby enablinga mobile device to automatically determine that the mobile device islocated on the vehicle, based on the mobile device being connected tothe external device and based on the association between the externaldevice and the vehicle.
 12. A computer program product comprising acomputer readable storage medium retaining program instructions, whichprogram instructions when read by a processor, cause the processor toperform a method comprising: obtaining information from a plurality ofmobile devices, wherein the information is gathered by sensors of theplurality of mobile devices, while the plurality of the mobile devicesare connected to an external device; and automatically determining,based on the information, that the external device is uniquely andpersistently associated with a vehicle, wherein said automaticallydetermining is performed without prior knowledge about the externaldevice being related to the vehicle; whereby enabling a mobile device toautomatically determine that the mobile device is located on thevehicle, based on the mobile device being connected to the externaldevice and based on the association between the external device and thevehicle.